package cn.edu.scau.cmi.ema.dao;

import java.util.Set;

import org.springframework.dao.DataAccessException;
import cn.edu.scau.cmi.ema.domain.*;
import cn.edu.scau.cmi.ema.domain.base.CmiPagination;

public interface SupplierDAO extends JpaDao<Supplier> {

	public Supplier findSupplierById(Integer id) throws DataAccessException;

	public Supplier findSupplierById(Integer id, int startResult, int maxRows) throws DataAccessException;

	public Set<Supplier> findSupplierByName(String name) throws DataAccessException;

	public Set<Supplier> findSupplierByName(String name, int startResult, int maxRows) throws DataAccessException;

	public Set<Supplier> findSupplierByNameContaining(String name_1) throws DataAccessException;

	public Set<Supplier> findSupplierByNameContaining(String name_1, int startResult, int maxRows)
			throws DataAccessException;

	public Set<Supplier> findSupplierByDescription(String description) throws DataAccessException;

	public Set<Supplier> findSupplierByDescription(String description, int startResult, int maxRows)
			throws DataAccessException;

	public Set<Supplier> findSupplierByDescriptionContaining(String description_1) throws DataAccessException;

	public Set<Supplier> findSupplierByDescriptionContaining(String description_1, int startResult, int maxRows)
			throws DataAccessException;

	public Supplier findSupplierByPrimaryKey(Integer id) throws DataAccessException;

	public Supplier findSupplierByPrimaryKey(Integer id, int startResult, int maxRows) throws DataAccessException;

	public Set<Supplier> findSuppliersByIds(Set<Integer> ids) throws DataAccessException;

	public Set<Supplier> findAllSuppliers() throws DataAccessException;

	public Set<Supplier> findAllSuppliers(int startResult, int maxRows) throws DataAccessException;

	public Set<Supplier> findSuppliersByAddress(Integer addressId, int start, int max);

	public Set<Supplier> findSupplierByCompositeProperities(String sql, int startResult, int maxRows)
			throws DataAccessException;

	public Set<Supplier> findSuppliersByDetachedCriteria(CmiPagination page) throws DataAccessException;

	public Supplier findSupplierByPhysicalPrimaryKey(String name, Integer addressId) throws DataAccessException;

	public Supplier findSupplierByPhysicalPrimaryKey(String name, Integer addressId, int startResult, int maxRows)
			throws DataAccessException;
}
